<?php

/**
 * @author PeoneEr
 * @package aion personal cabinet v1.0
 * @copyright Aion Factory Inc. 2010-2011
 * @license GNU v3
 * @link Ai-Factory.ru && http://code.google.com/p/aionprivateofficev2
 */
require_once "core/application/models/mpremiums/mpremiums.php";
require_once "core/application/classes/errorClass.php";
require_once "core/application/classes/membershipClass.php";

class PremiumAccounts_Controller extends Premiums_Model {

    private static $_instance = NULL;

    public static function getInstance() {
        if (is_null(self::$_instance)) {
            $class = __CLASS__;
            self::$_instance = new $class();
        }
        return self::$_instance;
    }

    private function catchParams() {
        /**
         *  ловим
         * @return premiumDataAdd
         */
        $premiumDataAdd = array(
            'account' => $_POST['account'],
            'membership' => $_POST['membership'],
            'expire' => $_POST['expire']
        );
        return $premiumDataAdd;
    }

    public function addPremiumToList() {
        $premiumDataAdd = $this->catchParams();
        if (isset($_POST['expireNone']))
            $premiumDataAdd['expire'] = NULL;
        $premiumDataAdd['account'] = $this->secure($premiumDataAdd['account']);
        if ($this->testAlreadyPremium($premiumDataAdd['account'])) {
            $this->redirect(10, "index?adm&premiums");
            $this->echoError("Аккаунт " . $premiumDataAdd['account'] . " уже является премиум или VIP");
        }

        if ($this->numRowsOfCharsOnAccount($premiumDataAdd['account'])) {
            $this->redirect(10, "index?adm&premium");
            $this->echoError("Аккаунта <b>" . $premiumDataAdd['account'] . "</b> не существует");
        }
        try {
            $this->add_prem($premiumDataAdd['account'], $premiumDataAdd['membership'], $premiumDataAdd['expire']);
            $text = "<p>Аккаунту <b>" . $premiumDataAdd['account'] . "</b> присвоен статус ";
            $text .= Membership::switchMembership($premiumDataAdd['membership']);
            $text .= ". <br />Рейты повышены. Изменения вступят в силу после ребута";
            $this->echoSuccess($text);
        } catch (Exception $e) {
            echo $e->getMessage();
            error::getInstance('Ошибка при установке защиты по IP адресу');
        }

        unset($premiumDataAdd);
    }

    public function delPremiumFromList() {
        $account = $_GET['account'];
        //Шняжная проверка, ибо по сути аккаунт не может быть пустым
        if (empty($account)) {
            $this->redirect(10, "index?adm");
            $this->echoError("Трам пам пам.. Нет аккаунта, ай-ай-ай..");
        }
        $account = $this->secure($account);
        try {
            $this->deletePremiumAccountFromDB($account);
            $this->echoSuccess("С аккаунта " . $account . " снят специальный статус");
            $this->redirect(10, "index?adm&premiums");
        } catch (Exception $e) {
            echo $e->getMessage();
            error::getInstance('Ошибка при установке защиты по IP адресу');
        }
    }

}

?>
